//#pragma once 
//
////#include <iostream>
////#include <pthread.h>
//#include"ThreadPool.hpp"
//
////typedef int (*handler_t)(int,int,char);
//
//class Task{
//  private:
//    int x;
//    int y;
//    char op;
//
//  public:
//    Task()
//    {}
//    Task(int _x, int _y, char _op):x(_x), y(_y), op(_op)
//  {
//
//  }
//    void Run()
//    {
//      int z = 0;
//      switch(op){
//        case '-':          z = x - y;
//                           break;
//        case '+':
//                           z = x + y;
//                           break;
//        case '*':
//                           z = x * y;
//                           break;
//        case '/':
//                           if(y == 0) std::cerr << "div zero!" << std::endl;
//                           if(y != 0) z = x / y;
//                           break;
//        case '%':
//                           if(y == 0) std::cerr << "mod zero!" << std::endl;
//                           if(y != 0) z = x % y;
//                           break;
//        default:
//                           perror("operator error!\n");
//                           break;
//      }
//      std::cout << "thread: [" << pthread_self() << " ]: " << x << op << y << "=" << z << std::endl;
//    }
//    ~Task()
//    {}
//};
//
//
#pragma once 
#include"ThreadPool.hpp"
class Task{

  private: 
    int x;
    int y;
    char op;

  public:
    Task()
    {

    }
    
    Task(int _x,int _y,char _op):x(_x),y(_y),op(_op)
  {

  }
    void Run()
    {
      int z=0;
      //task do 
      switch(op)
      {
        case '-': z=x-y;
          break;
        case '+':z=x+y;
          break;
        case '*':z=x*y;
          break;
        case '/':
                 if(y==0)
                 {
                   perror("div zero!!\n");
                 }
                 else 
                 z=x/y;
          break;
        case '%':
          if(y==0) perror("div zero!!\n");
          else 
          z=x%y;
          break;
        default:perror("operator error!!\n");
          break;

      }
     printf("thread:%d  %d %c %d = %d\n",pthread_self(),x,op,y,z);//不加\n会延迟打印
    // std::cout << "thread: [" << pthread_self() << " ]: " << x << op << y << "=" << z << std::endl;
      }                                 
    ~Task()                             
    {                                   
                                        
    }                                   
                                        
                                        
                                        
};                                      
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
